package com.example.swordjava;


import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class Test61 {

    public static void main(String[] args) {

        int[][] a = {{1, 2, 3, 4},
                {5, 6, 7, 8},
                {9, 10, 11, 12},
                {13, 14, 15, 16}};

        System.out.println(Math.pow(1, 10));

    }

    public class TreeNode {
        int val = 0;
        Test45.TreeNode left = null;
        Test45.TreeNode right = null;

        public TreeNode(int val) {
            this.val = val;

        }
    }

    /**
     * 扑克牌顺子
     * 现在有2副扑克牌，从扑克牌中随机五张扑克牌，我们需要来判断一下是不是顺子。
     * 有如下规则：
     * 1. A为1，J为11，Q为12，K为13，A不能视为14
     * 2. 大、小王为 0，0可以看作任意牌
     * 3. 如果给出的五张牌能组成顺子（即这五张牌是连续的）就输出true，否则就输出false。
     * 4.数据保证每组5个数字，每组最多含有4个零，数组的数取值为 [0, 13]
     * <p>
     * 要求：空间复杂度O(1)，时间复杂度O(nlogn)，本题也有时间复杂度O(n) 的解法
     */

    public boolean IsContinuous(int[] numbers) {
        // write code here
        Map<Integer, Integer> map = new HashMap();
        int min = 13;
        int max = 0;

        for (int i = 0; i < numbers.length; i++) {
            if (numbers[i] > 0) {
                if (map.containsKey(numbers[i])) {
                    return false;
                } else {
                    map.put(numbers[i], 1);
                    if (numbers[i] > max) {
                        max = numbers[i];
                    }
                    if (numbers[i] < min) {
                        min = numbers[i];
                    }
                }
            }
        }

        if ((max - min) < 5) {
            return true;
        } else {
            return false;
        }
    }

}














